PWr - Przetwarzanie informacji w klasycznych systemach komputerowych i sieciach neuronowych
Przetwarzanie informacji (ang. information processing), obróbka informacji z użyciem komputerów z jednej postaci do innej, spełniającej pewien cel, np. sortowanie informacji nieuporządkowanych lub wyszukiwanie informacji spełniających określony warunek. Załóżmy na przykład, że poświęcamy każdego dnia pół godziny na oglądanie telewizji i mamy do dyspozycji 500 programów telewizyjnych. Powstają dwa problemy: * jak udostępnić ich spisy, * jak z nich wybierać. Komputery rozwiązują te problemy w całości. Na pytanie: "co wybrać?" musi odpowiedzieć sam użytkownik (choć może w tym wspomóc się inną bazą danych). Pojęcia * Neuron – komórka nerwowa akson, kolaterale (odgałęzienia aksonu). Jego główna funkcja polega na sumowaniu wagowym sygnałów wejściowych i porównywaniu wyniku z wartością progową (klasyfikacja liniowa) * Synapsa – połączenie dendrytu z aksonem innej komórki (synapsy hamujące i pobudzające) * Modele neuronu – patrz niżej * Funkcja aktywacji – * Sieć neuronowa – zorganizowany zbiór neuronów i połączeń między nimi (równoległy, rozproszony system wieloprocesorowy; przetwarzanie informacji przebiega na podobieństwo procesów myślowych) Klasyczny system * umożliwia rozwiązywanie problemów, które daje się przedstawić w postaci algorytmu * musi być możliwe skonstruowanie analitycznego modelu matematycznego, * mała szybkość rozwiązywania pewnych klas problemów (np. rozpoznawanie obrazów i dźwięków), * brak lub bardzo mała zdolność przystosowania się do nowej klasy problemu, nie przewidzianego na etapie projektu i realizacji systemu (zwykle wymaga to ingerencji człowieka w kod programu i jego rozbudowanie), * mała odporność na błędy danych wejściowych, błędy w algorytmach przetwarzających oraz błędy elementów składowych systemu (układów elektronicznych), * przygotowanie systemu realizującego założone zadania wiąże się zwykle z analizą danego problemu, sformułowaniem występujących zależności, przygotowaniem algorytmów, implementacją sprzętową i programową oraz testowaniem systemu. Sieć neuronowa * pozwala rozwiązywać problemy, których nie daje się przedstawić w formie algorytmu, * duża szybkość działania sieci (pomimo niewielkiej szybkości pojedynczego neuronu, dzięki bardzo dużej ich liczbie i równoległemu przetwarzaniu), * możliwość poprawnego rozwiązania nowych problemów – samodzielne dostosowanie się do nowych zadań, * FTC – wyniki obliczeń nie zależą (w pewnych granicach) od występowania uszkodzeń zarówno w danych wejściowych, jak i pojedynczych neuronach, * analiza klasy problemu i wybór optymalnej konfiguracji sieci neuronowej (model neuronu, typ sieci, określenie rozmiaru sieci), a następnie uczenie sieci. * zdolność uogólniania wiedzy (generalizacji) Modele neuronu * Perceptron - model McCullocha-Pittsa, nieciągła funkcja aktywacji (skokowa). Uczenie z nauczycielem; dobór wag w ten sposób, aby sygnał wyjściowy był najbliższy wartości zadanej. * Neuron typu sigmoidalnego – j.w., ciągła funkcja aktywacji, różniczkowalna. Zwykle uczenie z nauczycielem poprzez minimalizację funkcji energetycznej. * Neuron ADALINE - (ADAptive LInear NEuron), funkcja aktywacji typu signum, dobór wag poprzez minimalizację błędu kwadratowego. * INSTAR - (klasyfikator wektorowy), porównanie wektora wejściowego z wyuczonym wzorcem. * OUTSTAR - (klasyfikator wektorowy), generowanie wektora pożądanego przez inne neurony z nim związane. * Grossberga – wagi dostosowują się do sygnałów wejściowych lub wyjściowych. * WTA - (Winners Take All), uczenie bez nauczyciela, neuron najlepiej dopasowany do wzorca przyjmuje stan 1 na wyjściu i modyfikuje swoje wagi, pozostałe stan 0 i brak modyfikacji wag. Zastosowanie – najczęściej klasyfikacja wektorów. * Hebba – zmiana wagi Wij proporcjonalna do iloczynu sygnału wejściowego oraz wyjściowego. Uczenie z nauczycielem lub bez. * Model stochastyczny – stan wyjściowy zależy zarówno od sygnałów na wejściu jak również od pewnej zmiennej losowej. Typy sieci neuronowych * sieć jednokierunkowa – przepływ sygnałów odbywa się od wejścia do wyjścia. Sieć składa się z jednej lub kilku warstw. Warstwa wejściowa zawiera liczbę neuronów równą wymiarowi wektora wejściowego X, warstwa wyjściowa – wymiar wektora zadanego d z pary wektorów uczących (X,d) * sieć rekurencyjna – dowolne powiązania neuronów, dwukierunkowy przepływ danych. Powoduje to występowanie sprzężeń zwrotnych, co pociąga za sobą konieczność ustalenia wartości wyjściowych w sposób rekurencyjny * sieć komórkowa – sąsiednie neurony są powiązane dwukierunkowo. Kształt i zasięg sąsiedztwa są ustalane (najczęściej sąsiedztwo kwadratowe o promieniu 1  8 sąsiadów) Uczenie sieci neuronowej * uczenie z nauczycielem – podanie jednocześnie wektora wejściowego X i wektora zadanego d ; błędne odpowiedzi sieci powodują modyfikację wag aż do uzyskania wyników poprawnych * uczenie bez nauczyciela – podawany jest tylko sygnał wejściowy X (sieć samodzielnie dostosowuje się do podawanych wzorców) * nauczanie z oceną (po prezentacji pewnej liczby próbek uczących X wystawiana jest "ocena" Różnice i podobieństwa przetwarzania informacji w komputerze działającym wg. schematu von Neumanna i w neurokomputerze Von Neumann - ciąg zadań (programów) przetwarzany liniowo. Sieć neuronowa jest to równoległy rozproszony system zbudowany z neuronów wyposażonych w pamięć lokalną i mogących realizować lokalne operacje. Komórki połączone są jednokierunkowo kanałami sygnałowymi. Każdy element przetwarzający ma pojedyncze wyjście, które może się rozgałęziać. Sygnał wyjściowy może być dowolną funkcją matematyczną. Przetwarzanie informacji w komórce może być definiowane arbitralnie z tym jednym ograniczeniem, że musi być całkowicie lokalne tzn. musi zależeć od bieżących sygnałów wejściowych i wartości zapamiętanych w pamięci lokalnej. Funkcja przejściowa może być realizowana w sposób ciągły lub impulsowy (epizodyczny). Model matematyczny komórki neuronowej Metody uczenia sieci neuronowych # uczenie z nauczycielem #:nauczanie po każdej lekcji #:* po każdym wektorze wejściowym X(t) porównanie z Zt(we uczące), #:* jeżeli są sobie równe nie robimy nic jeżeli wektory nie są równe następuje modyfikacja wag #:nauczanie po grupie lekcji #:* podobnie jak poprzednio tyle że porównanie modyfikacja następuje po grupie lekcji # uczenie bez nauczyciela (self organization traning) #: Pewnemu rozkładowi sygnału we. F(x) ma odpowiadać rozkład sygnału wyjściowego F(y). Usiłuje się tak dobrać wagi aby rozkład sygnału na wyjściu był jak najbardziej zbliżony do rozkładu sygnału F(y) przy zachowaniu podobieństwa sygnału we. do F(x). #metody uczenia oparte o prawo Hebba #:Jeśli syg. wy. nie zgodny z wzorcem to modyfikacja wag wg. wzoru #::wij new = wij old + yixj Przykłady zastosowań sieci neuronowych – cel, struktura, zasady uczenia zastosowanie – klasyfikacja – fuzzy logic – logika rozmyta. Rodzaje sieci : # Static feedforward network #: Ten typ sieci wykorzystywany jest do generowania funkcji oraz kojarzenia wzorców. # Sieć z lokalnym sprzężeniem zwrotnym - Network with local feedback #: Zastosowanie – wzmacnianie sygnałów, normalizacja wzorców, redukcja szumów. # Sieci z współzawodniczącymi warstwami - Network with a competitive layer #: Wykorzystywane do filtracji sygnałów i kojarzenia. # Sieć Hopfielda (sieć dynamiczna jednowarstwowa) - Hopfield type dynamic feedback network. #: Sieć Hopfielda może być wykorzystana jako pamięć asocjacyjna, do rozwiązania problemu komiwojażera lub rozwiązywania równań różniczkowych. # Sieć sekwencyjna #: Nic mi nie wiadomo o zastosowaniu. Zastosowanie sieci Jakkolwiek sieci neuronowe stanowią dziedzinę wiedzy całkowicie samodzielną, w rozwiązaniach praktycznych stanowią zwykle część sterującą procesem bądź część decyzyjną, przekazującą sygnał wykonawczy innym elementom urządzenia, nie związanym bezpośrednio z sieciami neuronowymi. Funkcje pełnione przez sieć mogą być sklasyfikowane w kilku podstawowych grupach, a mianowicie: * aproksymacji, * klasyfikacji i rozpoznawania wzorców, * predykcji, * identyfikacji i estymacji, * sterowania, * asocjacji. Sieć aproksymująca pełni rolę uniwersalnego aproksymatora funkcji wielu zmiennych, realizując funkcję nieliniową o postaci y = f(x) gdzie x jest wektorem wejściowym, a y realizowaną funkcją wielu zmiennych. Wiele zadań modelowania, identyfikacji, przetwarzania sygnałów da się sprowadzić do zagadnienia aproksymacyjnego. Przy klasyfikacji i rozpoznawaniu wzorców sieć uczy się podstawowych cech tych wzorców, takich jak odwzorowanie geometryczne układu składników wzorca, rozkładu składników głównych (PCA) czy innych jego cech. W uczeniu podkreślane są różnice występujące w różnych wzorcach, stanowiące podstawę podjęcia odpowiedniej decyzji klasyfikacyjnej. W dziedzinie predykcji zadaniem sieci jest określenie przyszłych zachowań systemu na podstawie ciągu wartości z przeszłości. Mając informację o wartościach zmiennej x w chwilach poprzedzających predykcję sieć podejmuje decyzję jaka będzie estymowana wartość badanego ciągu w chwili aktualnej. W zagadnieniach sterowania procesami dynamicznymi sieć neuronowa pełni zwykle kilka funkcji. Stanowi model nieliniowy tego procesu, identyfikując jego podstawowe parametry niezbędne do wypracowania odpowiedniego sygnału sterującego. Pełni funkcję układu śledzącego i nadążnego adaptując się do zmiennych warunków środowiskowych. Może również stanowić bezpośredni neuro-regulator typu PID zastępujący klasyczne rozwiązania. Ważną rolę, zwłaszcza w sterowaniu robotów stanowi klasyfikacja i podejmowanie decyzji co do dalszego przebiegu procesu. W zadaniach asocjacji rolą sieci neuronowej jest pamięć skojarzeniowa. Wyróżnić tu można pamięć auto-asocjacyjną, gdzie skojarzenie dotyczy tylko poszczególnych składowych wektora wejściowego oraz pamięć hetero-asocjacyjną, w której zadaniem sieci jest skojarzenie ze sobą dwu wektorów. W przypadku podania na wejście sieci wektora zaszumionego bądź pozbawionego pewnych fragmentów danych, sieć potrafi odtworzyć pełny wektor oryginalny, pozbawiony szumów, generując przy tym pełną postać drugiego wektora odpowiadającego mu. Najważniejszą cechą sieci neuronowych stanowiącą o jej ogromnych zaletach i szerokich możliwościach zastosowań jest równoległe przetwarzanie informacji przez wszystkie ogniwa. Przy ogromnej, masowej skali powiązań neuronowych możliwe jest dzięki temu znaczne przyspieszenie procesu przetwarzania informacji. W wielu wypadkach jest możliwe przetwarzanie sygnałów w czasie rzeczywistym. Ponadto przy bardzo dużej liczbie powiązań między-neuronowych sieć staje się odporna na błędy występujące w niektórych powiązaniach. Funkcję uszkodzonych wag przejmują inne i w efekcie w działaniu sieci nie dostrzega się istotnych zaburzeń. Inną nie mniej ważną cechą sieci jest zdolność do uczenia się i generalizacji nabytej wiedzy. Sieć posiada własność sztucznej inteligencji. Wytrenowana na wybranej grupie danych uczących potrafi skojarzyć nabytą wiedzę i wykazać dobre działanie na danych nie uczestniczących w procesie uczenia. Istotną zaletą sieci jest możliwość jej realizacji w technice wielkiej skali integracji. Zróżnicowanie elementów sieci jest niewielkie, a ich powtarzalność ogromna. Stwarza to perspektywę zbudowania uniwersalnego procesora, który być może w przyszłości zastąpi klasyczne procesory sterujące pracą komputerów (tzw. neuro-komputery). Możliwości zastosowań sieci neuronowych w przetwarzaniu sygnałów są ciągle jeszcze nie do końca zbadane i wydaje się, że mogą one jeszcze przez wiele lat stanowić o postępie w technice informacyjnej. Przykład biznesowy: Struktura Organizacyjna i sieć neuronowa Z teorii budowy struktur organizacyjnych wiemy, że przedstawiaja one architekturę systemu ukazując zbiór zależnych wobec siebie elementów, wzajemnie na siebie oddziałujących - uporządkowanych ze względu na te relacje. W tej opisowej definicji struktury organizacyjnej jest podobieństwo do sieci neuronowej. Każdy element systemu występujący w jego strukturze organizacyjnej może być interpretowany jako węzeł (neuron) sieci neuronowej. Relacje wiążące elementy systemu mogą być rozumiane jako połączenia synaptyczne sieci NN. Zatem, graf struktury organizacyjnej systemu może być zamieniony (przy dopuszczalnych modyfikacjach szczegółów) na architekturę odpowiadającej mu sieci neuronowej. Praca każdego z elementów systemu może być interpretowana jako przetwarzanie informacji dostarczanych z innych elementów struktury. Może być zatem opisana poprzez podanie tzw. funkcji aktywacji. Efektem realizacji tej funkcji jest decyzja lub tylko prosta informacja stanowiące wyjście z tego elementu (neuronu) przekazywana do dalszego przetworzenia w głębi struktury sieci. Stosownie do architektury sieci oraz zasad wprowadzania poszczególnych jej elementów do działania w systemie i wreszcie charakteru pozyskiwanych efektów na wyjściu każdego z elementów struktury otrzymujemy końcowy efekt pracy tego systemu. Istnieje więc analogia w konstrukcji formalnej i sposobie funkcjonowania struktur organizacyjnych i sieci neuronowych. Analiza potencjału produkcyjnego Potencjał produkcyjny przedsiębiorstwa (systemu) o ustalonej strukturze organizacyjnej może być przedmiotem obserwacji efektów Y pozyskiwanych dla różnych stanów wejścia tzn. informacji na temat zadań mogących być przedmiotem realizacji oraz informacji o stanie przedsiębiorstwa. Funkcje aktywacji elementów struktury przy zadanym stanie systemu muszą określać rezultaty pracy każdego elementu przy dowolnym stanie pobudzenia (w tym także granice wydolności elementów struktury). Sieć neuronowa pozyskuje więc w ten sposób możliwości określenia takiego efektu pracy systemu, który stanowi maksimum funkcji wyjścia z systemu. Nie ulega on zmianie nawet wówczas gdy stan wejścia w zakresie zadań będzie dowolnie powiększany. System osiągnął granice swoich możliwości. Zmianę maksimum efektu wyjścia może wywołać zmiana grafu struktury organizacyjnej - w transformacji na sieć NN oznacza to zmianę architektury sieci , bądź też zmiana sposobu pobudzania funkcji aktywacji (parametryczna lub charakterologiczna) elementów systemu (neuronów). Poziom maksymalnego osiągalnego efektu wyjścia w ustalonym sposobie funkcjonowania systemu i ustalonym jego stanie jest potencjałem produkcyjnym przedsiębiorstwa. W analizie sieci neuronowej jest on granicą, do której zmierza stan wyjścia przy wzrastającym nieograniczenie poziomie stanów generowanych jako zewnętrzne na wejściu do systemu. Zachowanie się struktury systemu Sieci neuronowe mają zdolność przystosowywania się do wymagań stawianych w stosunku do rezultatów oczekiwanych na wyjściu z sieci. Głównym elementem adaptacji są parametry pobudzania. Pozwalają one wzmocnić przez zwiększenie lub osłabić przez zmniejszenie intensywność oddziaływania jednego neuronu na inny. Dla struktur organizacyjnych systemów charakter i rozmiary modyfikacji pobudzania można interpretować jako wskazanie potrzeby odpowiedniej modyfikacji funkcji aktywacji tak aby uzyskać wymagany wynik produkcyjny w określonym miejscu w strukturze systemu. Uczenie sieci w tym przypadku będzie zawsze zamierzone na określony wynik produkcyjny a jego efektem będzie odpowiednio modyfikowany zbiór funkcji aktywacji wszystkich elementów systemu. W wyniku odpowiednio długiego "cyklu treningowego" przystosowuje się do realizacji celu dla którego jest projektowana. Przydatne linki http://web.archive.org/web/20051217040357/http://alipe.webpark.pl/neuronki.swf - bardzo ciekawa prezentacja multimedialna Category:Wrocław University of Technology